import axios from 'axios'
import { getToken, clearUserInfo } from '.';
import { showFailToast } from 'vant';
import router from '@/router'
axios.defaults.baseURL = import.meta.env.VITE_BASE_URL;
axios.defaults.timeout = 6000;
axios.defaults.headers['content-type'] = 'application/x-www-form-urlencoded';
// 添加拦截器

axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  if (getToken()) {
    if (config.method === 'get') {
      config.params = {
        ...config.params,
        token: getToken()
      }
    } else {
      config.data = {
        ...config.data,
        token: getToken()
      }
    }
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (res) {
  // 2000 未登录或者登录状态过期
  if (res.data.code === 2000) {
    clearUserInfo();
    showFailToast({
      message: '用户登录状态过期或未登录',
      onClose: () => {
        // 跳转到登录页
        router.replace('/login')
      }
    })
  }
  

  return res;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default axios